One of the most common and most serious problems in software application development is a failure to properly close connections to an underlying relational database. This is most commonly called ‘leaking connections’ or a ‘connection leak’. This problem is serious, and can degrade or even render unusable an application over time. Detecting the specific piece of application code that failed to close a connection is often extremely difficult, especially in high volume multi-threaded applications. The usual approach is a laborious manual inspection of suspect code or, if the problem can be recreated, debugging through the application source until the problem cause is determined.
Thus, improved mechanisms for discovering database connectivity leaks are needed.